package extend2;

public class Demo {
    /*
    继承关系下成员方法的访问特点 : 真正对象是哪个,就调用那个对象方法
    1. 在父类中访问 : 父类不能访问子类成员
    2. 在子类中访问 : 子类可以使用父类所有非私有的成员
            若想轻质访问本类父类名方法;需要在方法调用的前面加super : super.方法名();
    3. 在第三方类中访问:
            子类调用和父类同名的方法时,有先调用子类自己的
     */
    public static void main(String[] args) {
        //创建子类对象
        Zai zai = new Zai();
        zai.methodZi();//methodZi
        zai.methodFu();//methodFu
        zai.method();//子类的method
        System.out.println("----------------");
        Die die = new Zai();
        //die.methodZi();//
        die.methodFu();//methodFu
        die.method();//子类的method
    }
}


class Die{
    public void methodFu()
    {
        System.out.println("methodFu");
    }

    //父类的method
    public void method(){
        System.out.println("父类的method");
    }

    public void show(){
        method();//父类的method
        methodFu();//methodFu
        //methodZi();
    }
}

class Zai extends Die{
    public void methodZi(){
        System.out.println("methodZi");
    }

    //子类的method
    public void method(){
        System.out.println("子类的method");
    }

    public void show(){
        this.method();//子类的method
        super.method();//父类的method
        this.methodFu();//methodFu
        this.methodZi();//methodZi
    }
}
